package com.ourteam.product.requirement.dao;

/**
 * Template Name : DAO数据对象
 * Template Version : 1
 * Template Last Modfiy Date : Fri Aug 18 15:51:23 CST 2017
 * Auto Generate Date : 2018-05-03 16:45:18
  * Warning ! This file will be overwrite when regenerate !
  *
 */
import org.apache.commons.lang.StringUtils;


public class ProductVersionMilestone implements java.io.Serializable {
    private long id;

    /**
     * Attribute id Be Seted Falg
     */
    private boolean idSetted = false;

    /**
    * Attribute id is Null Falg
    */
    private boolean idNull = false;
    private long productVersionId;

    /**
     * Attribute productVersionId Be Seted Falg
     */
    private boolean productVersionIdSetted = false;

    /**
    * Attribute productVersionId is Null Falg
    */
    private boolean productVersionIdNull = false;
    private String milestoneName;

    /**
     * Attribute milestoneName Be Seted Falg
     */
    private boolean milestoneNameSetted = false;

    /**
    * Attribute milestoneName is Null Falg
    */
    private boolean milestoneNameNull = false;
    private int sortIndex;

    /**
     * Attribute sortIndex Be Seted Falg
     */
    private boolean sortIndexSetted = false;

    /**
    * Attribute sortIndex is Null Falg
    */
    private boolean sortIndexNull = false;
    private java.util.Date startDate;

    /**
     * Attribute startDate Be Seted Falg
     */
    private boolean startDateSetted = false;

    /**
    * Attribute startDate is Null Falg
    */
    private boolean startDateNull = false;
    private java.util.Date endDate;

    /**
     * Attribute endDate Be Seted Falg
     */
    private boolean endDateSetted = false;

    /**
    * Attribute endDate is Null Falg
    */
    private boolean endDateNull = false;
    private java.util.Date actualStartDate;

    /**
     * Attribute actualStartDate Be Seted Falg
     */
    private boolean actualStartDateSetted = false;

    /**
    * Attribute actualStartDate is Null Falg
    */
    private boolean actualStartDateNull = false;
    private java.util.Date actualEndDate;

    /**
     * Attribute actualEndDate Be Seted Falg
     */
    private boolean actualEndDateSetted = false;

    /**
    * Attribute actualEndDate is Null Falg
    */
    private boolean actualEndDateNull = false;
    private String status;

    /**
     * Attribute status Be Seted Falg
     */
    private boolean statusSetted = false;

    /**
    * Attribute status is Null Falg
    */
    private boolean statusNull = false;
    private String remarks;

    /**
     * Attribute remarks Be Seted Falg
     */
    private boolean remarksSetted = false;

    /**
    * Attribute remarks is Null Falg
    */
    private boolean remarksNull = false;
    private String productVersionName;

    /**
     * Attribute productVersionName Be Seted Falg
     */
    private boolean productVersionNameSetted = false;

    /**
    * Attribute productVersionName is Null Falg
    */
    private boolean productVersionNameNull = false;
    private java.util.Date productVersionStartDate;

    /**
     * Attribute productVersionStartDate Be Seted Falg
     */
    private boolean productVersionStartDateSetted = false;

    /**
    * Attribute productVersionStartDate is Null Falg
    */
    private boolean productVersionStartDateNull = false;
    private java.util.Date productVersionEndDate;

    /**
     * Attribute productVersionEndDate Be Seted Falg
     */
    private boolean productVersionEndDateSetted = false;

    /**
    * Attribute productVersionEndDate is Null Falg
    */
    private boolean productVersionEndDateNull = false;

    public ProductVersionMilestone() {
        super();
    }

    /**
         * Get id
         *
         * @return long
         */
    final public long getId() {
        return id;
    }

    /**
     * Set id
     *
     * @param long
     */
    final public void setId(long id) {
        this.id = id;

        this.idSetted = true;

        this.setIdNull(false);
    }

    /**
     * Get id Has Been Setted
     *
     * @return boolean
     */
    final public boolean isIdSetted() {
        return this.idSetted;
    }

    /**
     * Set id Null
     *
     */
    final public void setIdNull() {
        this.idNull = true;
    }

    final public void setIdNull(boolean aNullFlag) {
        this.idNull = aNullFlag;
    }

    final public boolean isIdNull() {
        return this.idNull;
    }

    /**
         * Get productVersionId
         *
         * @return long
         */
    final public long getProductVersionId() {
        return productVersionId;
    }

    /**
     * Set productVersionId
     *
     * @param long
     */
    final public void setProductVersionId(long productVersionId) {
        this.productVersionId = productVersionId;

        this.productVersionIdSetted = true;

        this.setProductVersionIdNull(false);
    }

    /**
     * Get productVersionId Has Been Setted
     *
     * @return boolean
     */
    final public boolean isProductVersionIdSetted() {
        return this.productVersionIdSetted;
    }

    /**
     * Set productVersionId Null
     *
     */
    final public void setProductVersionIdNull() {
        this.productVersionIdNull = true;
    }

    final public void setProductVersionIdNull(boolean aNullFlag) {
        this.productVersionIdNull = aNullFlag;
    }

    final public boolean isProductVersionIdNull() {
        return this.productVersionIdNull;
    }

    /**
         * Get milestoneName
         *
         * @return String
         */
    final public String getMilestoneName() {
        if (isMilestoneNameNull()) {
            return null;
        } else {
            return StringUtils.trim(milestoneName);
        }
    }

    /**
     * Set milestoneName
     *
     * @param String
     */
    final public void setMilestoneName(String milestoneName) {
        this.milestoneName = StringUtils.trim(milestoneName);

        this.milestoneNameSetted = true;

        this.setMilestoneNameNull(this.milestoneName == null);
    }

    /**
     * Get milestoneName Has Been Setted
     *
     * @return boolean
     */
    final public boolean isMilestoneNameSetted() {
        return this.milestoneNameSetted;
    }

    /**
     * Set milestoneName Null
     *
     */
    final public void setMilestoneNameNull() {
        this.milestoneNameNull = true;
    }

    final public void setMilestoneNameNull(boolean aNullFlag) {
        this.milestoneNameNull = aNullFlag;
    }

    final public boolean isMilestoneNameNull() {
        return this.milestoneNameNull;
    }

    /**
         * Get sortIndex
         *
         * @return int
         */
    final public int getSortIndex() {
        return sortIndex;
    }

    /**
     * Set sortIndex
     *
     * @param int
     */
    final public void setSortIndex(int sortIndex) {
        this.sortIndex = sortIndex;

        this.sortIndexSetted = true;

        this.setSortIndexNull(false);
    }

    /**
     * Get sortIndex Has Been Setted
     *
     * @return boolean
     */
    final public boolean isSortIndexSetted() {
        return this.sortIndexSetted;
    }

    /**
     * Set sortIndex Null
     *
     */
    final public void setSortIndexNull() {
        this.sortIndexNull = true;
    }

    final public void setSortIndexNull(boolean aNullFlag) {
        this.sortIndexNull = aNullFlag;
    }

    final public boolean isSortIndexNull() {
        return this.sortIndexNull;
    }

    /**
         * Get startDate
         *
         * @return java.util.Date
         */
    final public java.util.Date getStartDate() {
        return startDate;
    }

    /**
     * Set startDate
     *
     * @param java.util.Date
     */
    final public void setStartDate(java.util.Date startDate) {
        this.startDate = startDate;

        this.startDateSetted = true;

        this.setStartDateNull(this.startDate == null);
    }

    /**
     * Get startDate Has Been Setted
     *
     * @return boolean
     */
    final public boolean isStartDateSetted() {
        return this.startDateSetted;
    }

    /**
     * Set startDate Null
     *
     */
    final public void setStartDateNull() {
        this.startDateNull = true;
    }

    final public void setStartDateNull(boolean aNullFlag) {
        this.startDateNull = aNullFlag;
    }

    final public boolean isStartDateNull() {
        return this.startDateNull;
    }

    /**
         * Get endDate
         *
         * @return java.util.Date
         */
    final public java.util.Date getEndDate() {
        return endDate;
    }

    /**
     * Set endDate
     *
     * @param java.util.Date
     */
    final public void setEndDate(java.util.Date endDate) {
        this.endDate = endDate;

        this.endDateSetted = true;

        this.setEndDateNull(this.endDate == null);
    }

    /**
     * Get endDate Has Been Setted
     *
     * @return boolean
     */
    final public boolean isEndDateSetted() {
        return this.endDateSetted;
    }

    /**
     * Set endDate Null
     *
     */
    final public void setEndDateNull() {
        this.endDateNull = true;
    }

    final public void setEndDateNull(boolean aNullFlag) {
        this.endDateNull = aNullFlag;
    }

    final public boolean isEndDateNull() {
        return this.endDateNull;
    }

    /**
         * Get actualStartDate
         *
         * @return java.util.Date
         */
    final public java.util.Date getActualStartDate() {
        return actualStartDate;
    }

    /**
     * Set actualStartDate
     *
     * @param java.util.Date
     */
    final public void setActualStartDate(java.util.Date actualStartDate) {
        this.actualStartDate = actualStartDate;

        this.actualStartDateSetted = true;

        this.setActualStartDateNull(this.actualStartDate == null);
    }

    /**
     * Get actualStartDate Has Been Setted
     *
     * @return boolean
     */
    final public boolean isActualStartDateSetted() {
        return this.actualStartDateSetted;
    }

    /**
     * Set actualStartDate Null
     *
     */
    final public void setActualStartDateNull() {
        this.actualStartDateNull = true;
    }

    final public void setActualStartDateNull(boolean aNullFlag) {
        this.actualStartDateNull = aNullFlag;
    }

    final public boolean isActualStartDateNull() {
        return this.actualStartDateNull;
    }

    /**
         * Get actualEndDate
         *
         * @return java.util.Date
         */
    final public java.util.Date getActualEndDate() {
        return actualEndDate;
    }

    /**
     * Set actualEndDate
     *
     * @param java.util.Date
     */
    final public void setActualEndDate(java.util.Date actualEndDate) {
        this.actualEndDate = actualEndDate;

        this.actualEndDateSetted = true;

        this.setActualEndDateNull(this.actualEndDate == null);
    }

    /**
     * Get actualEndDate Has Been Setted
     *
     * @return boolean
     */
    final public boolean isActualEndDateSetted() {
        return this.actualEndDateSetted;
    }

    /**
     * Set actualEndDate Null
     *
     */
    final public void setActualEndDateNull() {
        this.actualEndDateNull = true;
    }

    final public void setActualEndDateNull(boolean aNullFlag) {
        this.actualEndDateNull = aNullFlag;
    }

    final public boolean isActualEndDateNull() {
        return this.actualEndDateNull;
    }

    /**
         * Get status
         *
         * @return String
         */
    final public String getStatus() {
        if (isStatusNull()) {
            return null;
        } else {
            return StringUtils.trim(status);
        }
    }

    /**
     * Set status
     *
     * @param String
     */
    final public void setStatus(String status) {
        this.status = StringUtils.trim(status);

        this.statusSetted = true;

        this.setStatusNull(this.status == null);
    }

    /**
     * Get status Has Been Setted
     *
     * @return boolean
     */
    final public boolean isStatusSetted() {
        return this.statusSetted;
    }

    /**
     * Set status Null
     *
     */
    final public void setStatusNull() {
        this.statusNull = true;
    }

    final public void setStatusNull(boolean aNullFlag) {
        this.statusNull = aNullFlag;
    }

    final public boolean isStatusNull() {
        return this.statusNull;
    }

    /**
         * Get remarks
         *
         * @return String
         */
    final public String getRemarks() {
        if (isRemarksNull()) {
            return null;
        } else {
            return StringUtils.trim(remarks);
        }
    }

    /**
     * Set remarks
     *
     * @param String
     */
    final public void setRemarks(String remarks) {
        this.remarks = StringUtils.trim(remarks);

        this.remarksSetted = true;

        this.setRemarksNull(this.remarks == null);
    }

    /**
     * Get remarks Has Been Setted
     *
     * @return boolean
     */
    final public boolean isRemarksSetted() {
        return this.remarksSetted;
    }

    /**
     * Set remarks Null
     *
     */
    final public void setRemarksNull() {
        this.remarksNull = true;
    }

    final public void setRemarksNull(boolean aNullFlag) {
        this.remarksNull = aNullFlag;
    }

    final public boolean isRemarksNull() {
        return this.remarksNull;
    }

    /**
         * Get productVersionName
         *
         * @return String
         */
    final public String getProductVersionName() {
        if (isProductVersionNameNull()) {
            return null;
        } else {
            return StringUtils.trim(productVersionName);
        }
    }

    /**
     * Set productVersionName
     *
     * @param String
     */
    final public void setProductVersionName(String productVersionName) {
        this.productVersionName = StringUtils.trim(productVersionName);

        this.productVersionNameSetted = true;

        this.setProductVersionNameNull(this.productVersionName == null);
    }

    /**
     * Get productVersionName Has Been Setted
     *
     * @return boolean
     */
    final public boolean isProductVersionNameSetted() {
        return this.productVersionNameSetted;
    }

    /**
     * Set productVersionName Null
     *
     */
    final public void setProductVersionNameNull() {
        this.productVersionNameNull = true;
    }

    final public void setProductVersionNameNull(boolean aNullFlag) {
        this.productVersionNameNull = aNullFlag;
    }

    final public boolean isProductVersionNameNull() {
        return this.productVersionNameNull;
    }

    /**
         * Get productVersionStartDate
         *
         * @return java.util.Date
         */
    final public java.util.Date getProductVersionStartDate() {
        return productVersionStartDate;
    }

    /**
     * Set productVersionStartDate
     *
     * @param java.util.Date
     */
    final public void setProductVersionStartDate(
        java.util.Date productVersionStartDate) {
        this.productVersionStartDate = productVersionStartDate;

        this.productVersionStartDateSetted = true;

        this.setProductVersionStartDateNull(this.productVersionStartDate == null);
    }

    /**
     * Get productVersionStartDate Has Been Setted
     *
     * @return boolean
     */
    final public boolean isProductVersionStartDateSetted() {
        return this.productVersionStartDateSetted;
    }

    /**
     * Set productVersionStartDate Null
     *
     */
    final public void setProductVersionStartDateNull() {
        this.productVersionStartDateNull = true;
    }

    final public void setProductVersionStartDateNull(boolean aNullFlag) {
        this.productVersionStartDateNull = aNullFlag;
    }

    final public boolean isProductVersionStartDateNull() {
        return this.productVersionStartDateNull;
    }

    /**
         * Get productVersionEndDate
         *
         * @return java.util.Date
         */
    final public java.util.Date getProductVersionEndDate() {
        return productVersionEndDate;
    }

    /**
     * Set productVersionEndDate
     *
     * @param java.util.Date
     */
    final public void setProductVersionEndDate(
        java.util.Date productVersionEndDate) {
        this.productVersionEndDate = productVersionEndDate;

        this.productVersionEndDateSetted = true;

        this.setProductVersionEndDateNull(this.productVersionEndDate == null);
    }

    /**
     * Get productVersionEndDate Has Been Setted
     *
     * @return boolean
     */
    final public boolean isProductVersionEndDateSetted() {
        return this.productVersionEndDateSetted;
    }

    /**
     * Set productVersionEndDate Null
     *
     */
    final public void setProductVersionEndDateNull() {
        this.productVersionEndDateNull = true;
    }

    final public void setProductVersionEndDateNull(boolean aNullFlag) {
        this.productVersionEndDateNull = aNullFlag;
    }

    final public boolean isProductVersionEndDateNull() {
        return this.productVersionEndDateNull;
    }

    public int hashCode() {
        final int prime = 31;
        int result = 1;

        result = (prime * result) + (int) (getId() ^ (getId() >>> 32));

        return result;
    }

    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }

        if ((obj instanceof ProductVersionMilestone) == false) {
            return false;
        }

        ProductVersionMilestone other = (ProductVersionMilestone) obj;

        if (getId() != other.getId()) {
            return false;
        }

        return true;
    }

    public String toString() {
        StringBuffer buffer = new StringBuffer();

        buffer.append("[");

        buffer.append("id=");
        buffer.append(this.id);

        buffer.append("productVersionId=");
        buffer.append(this.productVersionId);

        buffer.append("milestoneName=");
        buffer.append(this.milestoneName);

        buffer.append("sortIndex=");
        buffer.append(this.sortIndex);

        buffer.append("startDate=");
        buffer.append(this.startDate);

        buffer.append("endDate=");
        buffer.append(this.endDate);

        buffer.append("actualStartDate=");
        buffer.append(this.actualStartDate);

        buffer.append("actualEndDate=");
        buffer.append(this.actualEndDate);

        buffer.append("status=");
        buffer.append(this.status);

        buffer.append("remarks=");
        buffer.append(this.remarks);

        buffer.append("productVersionName=");
        buffer.append(this.productVersionName);

        buffer.append("productVersionStartDate=");
        buffer.append(this.productVersionStartDate);

        buffer.append("productVersionEndDate=");
        buffer.append(this.productVersionEndDate);

        buffer.append("]");

        return buffer.toString();
    }
}
